/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package infra;

import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import modelo.Locacao;

/**
 *
 * @author Edemilson Danker
 * @author Jefferson Sidney Rossetim
 * @author Rogerio Mello Vanti
 */
public class ModeloTabela extends AbstractTableModel implements LocadoraListener{

    private String[] titulos = {"Titulo","Genero","Disponibilidade","Cliente","Data"};
    private List<Locacao> locacoes;
    
    public ModeloTabela(){
        this.locacoes = new ArrayList();
    }//fim construtor
    
    @Override
    public int getRowCount() {
        return this.locacoes.size();
    }

    @Override
    public int getColumnCount() {
        return this.titulos.length;
    }

    @Override
    public Object getValueAt(int indicelinha, int indiceColuna) {
        switch(indiceColuna){
            case 0: return this.locacoes.get(indicelinha).getFilmeLocados().getTitulo();
            case 1: return this.locacoes.get(indicelinha).getFilmeLocados().getGenero();
            case 2: return this.locacoes.get(indicelinha).getFilmeLocados().isLocado();
            case 3: return this.locacoes.get(indicelinha).getCliente().getNome();
            case 4: return this.locacoes.get(indicelinha).getDataLocacao();
            default: return null;
        }//fim switch
    }

    public void atualizar(){
        fireTableStructureChanged();
    }
    
    public void adicionarLocacao(Locacao l){
        this.locacoes.add(l);
        atualizar();
    }
    
    public void removerLocacao(int indice){
        this.locacoes.remove(indice);
        atualizar();
    }
    
    @Override
    public String getColumnName(int coluna) {
        return this.titulos[coluna];
    }

    @Override
    public void cadastrarCliente(String nome) {}

    @Override
    public void cadastrarFilme(String nome) {}

    @Override
    public void cadastrarLocacao(Locacao locacao) {
        this.locacoes.add(locacao);
    }
    
}//fim class
